package com.chixing.Homework.Order1;

import com.chixing.day07_adstract.prototype.Company;

//处理订单的业务
public class BusinessOrder{

//    创建订单方法  传入一个参数 是订单的接口对象
    public void OrderFun1(OrderApi order){
//        客户有这样一个需求:每当订单的预定产品数量超过1000的时候，就需要把订单拆成两份订单来保存。
//        如果拆成两份订单后，还是超过1000，那就继续拆分，直到每份订单的预定产品数量不超过1000。
        //首先要知道订单的类型  然后对订单进行拆分
        if(order instanceof PersonOrder){
            while (((PersonOrder) order).getProductNum() >= 1000){
                //确定订单数量大于1000，需要创建新的对象
                PersonOrder personOrder = new PersonOrder();
                personOrder.setPersonOrderName(((PersonOrder) order).getPersonOrderName());
                personOrder.setPersonOrderId(((PersonOrder) order).getPersonOrderId());
                personOrder.setProductNum(1000);
                System.out.println(personOrder);
                ((PersonOrder) order).setProductNum(((PersonOrder) order).getProductNum()-1000);
                System.out.println(((PersonOrder) order).getProductNum());
            }
            if (((PersonOrder) order).getProductNum()!=0){
                PersonOrder personOrder = new PersonOrder();
                personOrder.setPersonOrderName(((PersonOrder) order).getPersonOrderName());
                personOrder.setPersonOrderId(((PersonOrder) order).getPersonOrderId());
                personOrder.setProductNum(((PersonOrder) order).getProductNum());
                System.out.println(personOrder);
            }

        }
        if(order instanceof CompanyOrder){
            while(((CompanyOrder) order).getProductNum()>=1000){
                CompanyOrder com=new CompanyOrder();
                com.setCompanyOrderName(((CompanyOrder) order).getCompanyOrderName());
                com.setCompanyOrderId(((CompanyOrder) order).getCompanyOrderId());
                com.setProductNum(1000);
                System.out.println(com);
                ((CompanyOrder) order).setProductNum(((CompanyOrder) order).getProductNum()-1000);
                System.out.println(((CompanyOrder) order).getProductNum());

            }
            if (((CompanyOrder) order).getProductNum() != 0) {
                CompanyOrder com=new CompanyOrder();
                com.setCompanyOrderName(((CompanyOrder) order).getCompanyOrderName());
                com.setCompanyOrderId(((CompanyOrder) order).getCompanyOrderId());
                com.setProductNum(((CompanyOrder) order).getProductNum());
                System.out.println(com);
            }
        }




//        while(order.getOrderProdectNum()>=1000){

            //对订单进行拆分  拆分之后的订单  就会成为一个  新的  订单对象 然后  再对这个新订单的数量进行判断  如果 继续大于1000 则继续进行拆分
//            OrderApi neworder1=null;
//            if(order instanceof PersonOrder){
//
//                PersonOrder po1=new PersonOrder();//创建新的订单对象
//
//                PersonOrder po2=(PersonOrder)order; //进行赋值
//
//                po1.setPersonOrderName(po2.getPersonOrderName());
//                po1.setPersonOrderId(po2.getPersonOrderId());
//                po1.setOrderProdectNum(po2.getOrderProdectNum());
//
//                neworder1=po1;
//
//            }else if(order instanceof CompanyOrder){
//                CompanyOrder co1=new CompanyOrder();
//                CompanyOrder co2=(CompanyOrder)order;
//
//                co1.setCompanyOrderName(co2.getCompanyOrderName());
//                co1.setCompanyOrderId(co2.getCompanyOrderId());
//                co1.setOrderProdectNum(co2.getOrderProdectNum());
//                neworder1=co1;
//            }
//            //对于原来的订单  数量  进行-1000
//
//            order.setOrderProdectNum(order.getOrderProdectNum()-1000);
//            System.out.println("拆分成新的订单" + neworder1);
//            PersonOrder p1=new PersonOrder();


//        }
//        //不超过1000；直接输出
//        System.out.println("订单 " + order);


    }
}
